#!/usr/bin/env node

/**
 * 权限管理系统初始化脚本
 * 使用方法: node scripts/init-permissions.js
 */

const path = require('path');
const { fileURLToPath } = require('url');

// 设置环境变量
process.env.NODE_ENV = process.env.NODE_ENV || 'development';

async function main() {
  try {
    console.log('🚀 开始初始化权限管理系统...');
    
    // 动态导入 ES 模块
    const dbModule = await import('../src/lib/db/index.ts');
    const authModule = await import('../src/lib/db/auth-schema.ts');
    const getDb = dbModule.getDb;
    const initAuthTables = authModule.initAuthTables;
    const initializePermissionSystem = authModule.initializePermissionSystem;
    
    // 连接数据库
    console.log('📦 连接数据库...');
    const db = await getDb();
    
    // 初始化认证表（包括创建默认管理员）
    console.log('🔧 初始化认证数据库表...');
    await initAuthTables(db);
    
    // 初始化权限管理系统
    console.log('🔐 初始化权限管理系统...');
    await initializePermissionSystem(db);
    
    console.log('\n✅ 权限管理系统初始化完成！');
    console.log('\n📋 默认账户信息:');
    console.log('   邮箱: admin@admin.com');
    console.log('   密码: admin123456');
    console.log('\n🔗 现在可以访问以下管理页面:');
    console.log('   - 用户管理: http://localhost:3000/admin/users');
    console.log('   - 角色管理: http://localhost:3000/admin/roles');
    console.log('   - 权限管理: http://localhost:3000/admin/permissions');
    
    process.exit(0);
    
  } catch (error) {
    console.error('\n❌ 初始化失败:', error.message);
    console.error(error.stack);
    process.exit(1);
  }
}

// 运行脚本
if (require.main === module) {
  main();
}

module.exports = { main };